Circuitry and systems for encoding and decoding data are used extensively in modern electronics, especially in applications involving the communication or storage of data. Coding is implemented, and coding techniques are employed, by system designers seeking to provide various system functionalities.
One such functionality is detection and correction of errors in the data being processed by the system. Coding is employed to organize the data into recognizable patterns for transmission and receipt. This is accomplished by the introduction of redundancy into the data being processed by the system. Such functionality reduces the number of data errors, resulting in improved system reliability.
Another prevalent functionality addressed with coding techniques is system timing maintenance and clock recovery. Coding systems are often employed in conjunction with the data transmitted; exploiting redundancy introduced into the data to maintain or stabilize system timing, and to enable clock recovery.
Conventional methods of coding provide separate functional elements to independently address the timing and error reduction demands of the system.
As performance and efficiency demands of data transceiving systems are increased, coding systems and structures can be optimized to provide enhanced system efficiency while reducing system overhead. Appropriate design of a coding system can efficiently address system timing requirements and contribute to reduction of system error rates.